home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Disc to the Future 2
/
Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin
/
MAC
/
MACSHELL
/
MS1
/
COMMANDS
/
ENVIRON.C
< prev
next >
Wrap
Text File
|
1992-12-02
|
6KB
|
194 lines
/*
* MacShell Source File
*
* Copyright (c) 1989, 1990, 1991, 1992 Suick Bay Technologies. All rights reserved.
*
*
* RESTRICTIONS ON MacShell program and source code.
*
* Ñ╩MacShell¬ is a product of Suick Bay Technologies and is provided for
* restricted use by the owner of the CDROM "Disk to the future II".
*
* Ñ╩No permission is granted for any commercial use without the written
* consent of the Suick Bay Technologies.
*
* Ñ╩No permission is granted for any redistribution of any kind use without
* the written consent of the Suick Bay Technologies.
*
* Ñ╩Permission is granted to use this for any personal noncommercial use.
*
* Ñ╩You may not distribute source or executable code at all, nor may you
* distribute it with or within a commercial product without the written
* consent of the Suick Bay Technologies. Please send modifications to
* the author for inclusion in updates to the program. Thanks.
*
*
* MacShell¬ IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
* WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
*
* SUICK BAY TECHNOLOGIES SHALL HAVE NO LIABILITY WITH RESPECT TO THE
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY MACSHELL
* OR ANY PART THEREOF.
*
* In no event will Suick Bay Technologies be liable for any lost revenue
* or profits or other special, indirect and consequential damages, even if
* Suick Bay Technologies has been advised of the possibility of such damages.
*
* Suick Bay Technologies can be reached at:
*
* 8768 Cottonwood lane
* Maple Grove, MN 55369
* Voice: (612) 425-7025
* AppleLink: D5233
*
* Mpls, MN 55429
*
* No parts of this software may be reproduced or stored in a
* retrieval system or transmitted in any form, or any means,
* electronic, mechanical, photocopying, recording or otherwise,
* without the prior written permission of Suick Bay Technologies.
*
* Spread the word and not the disk.
*
* SPK 012290 : Initial
*/
#include "SystemPub.h"
#include "Proc.h"
#include "ShellPub.h"
#include "Path.h"
#define BUFSIZE 256
/*******************************************************************/
void DumpEnvirons( WHandle ShellWh, int16 ProcID )
{
OSErr result;
SysEnvRec sysRec;
char *str;
result = SysEnvirons( 2, &sysRec );
procPrintf( ShellWh, ProcID, " Version ........ %d\n", sysRec.environsVersion );
if( result )
{
procPrintf( ShellWh, ProcID, "SysEnvirons Error %d\n", result );
return;
}
switch( sysRec.machineType )
{
case envXL : str = "XL"; break;
case envMac : str = "Mac"; break;
case envMachUnknown : str = "Unknown";break;
case env512KE : str = "512KE"; break;
case envMacPlus : str = "MacPlus"; break;
case envSE : str = "SE"; break;
case envMacII : str = "MacII"; break;
case envMacIIx : str = "MacIIx"; break;
case envMacIIcx : str = "envMacIIcx"; break;
case envSE30 : str = "SE30"; break;
case envPortable : str = "Portable"; break;
case envMacIIci : str = "MacIIci"; break;
default :
str = "A new Mac, holy cow !\n";
break;
}
procPrintf( ShellWh, ProcID, " machineType .... %s\n", str );
procPrintf( ShellWh, ProcID, " systemVersion ..$%X\n", sysRec.systemVersion );
switch( sysRec.processor )
{
case envCPUUnknown : str = "CPUUnknown"; break;
case env68000 : str = "68000"; break;
case env68010 : str = "68010"; break;
case env68020 : str = "68020"; break;
case env68030 : str = "68030"; break;
default :
str = "A new Chip, holy motorolas !\n";
break;
}
procPrintf( ShellWh, ProcID, " processor ...... %s\n", str );
procPrintf( ShellWh, ProcID, " hasFPU ......... %d\n", sysRec.hasFPU );
procPrintf( ShellWh, ProcID, " hasColorQD ..... %d\n", sysRec.hasColorQD );
switch( sysRec.keyBoardType )
{
case envUnknownKbd : str = "envUnknownKbd"; break;
case envMacKbd : str = "envMacKbd"; break;
case envMacAndPad : str = "envMacAndPad"; break;
case envMacPlusKbd : str = "envMacPlusKbd"; break;
case envAExtendKbd : str = "envAExtendKbd"; break;
case envStandADBKbd : str = "envStandADBKbd"; break;
default :
str = "A new Keyboard, holy fat fingers batman !\n";
break;
}
procPrintf( ShellWh, ProcID, " keyBoardType ... %s\n", str );
procPrintf( ShellWh, ProcID, " atDrvrVersNum .. %d\n", sysRec.atDrvrVersNum );
procPrintf( ShellWh, ProcID, " sysVRefNum ..... %d (Hex %X)\n",
sysRec.sysVRefNum, sysRec.sysVRefNum );
}
/*******************************************************************/
Boolean DoENVIRON( int16 ProcToken, WHandle ShellWh, int16 ProcID, char *string )
{
int16 i, argc;
char *cp, argument[ 256 ];
ShellWindRec **MyShell = (ShellWindRec **) (**ShellWh).thing;
switch( ProcToken )
{
case PROC_INIT :
(**MyShell).Proc[ ProcID ].flags = TRUE;
break;
case PROC_TERM :
case PROC_BREAK :
/* Tell the shell that we're done */
SendOutToken( ShellWh, ProcID, PROC_BREAK );
/* Turn ourself off */
(**MyShell).Proc[ ProcID ].ProcActive = FALSE;
break;
case PROC_STDIN :
if( (**MyShell).Proc[ ProcID ].flags )
{
(**MyShell).Proc[ ProcID ].flags = FALSE;
/* get arguments */
argc = (**MyShell).Proc[ ProcID ].argc;
for( i = 1; i < argc; i++ )
{
GetArgv( ShellWh, ProcID, i, argument );
cp = argument;
if( *cp++ == '-' )
while( *cp )
switch( *cp++ )
{
case 'x' : /* option x */
break;
}
}
DumpEnvirons( ShellWh, ProcID );
/* Tell the shell that we're done */
SendOutToken( ShellWh, ProcID, PROC_BREAK );
/* Turn ourself off */
(**MyShell).Proc[ ProcID ].ProcActive = FALSE;
return( FALSE );
}
}
}